System and method for controlling a self-propelling lawnmower

ABSTRACT

A method and a system for controlling a self-propelling lawnmower including the self-propelling lawnmower having a control unit and at least one sensor, a boundary wire and a signal generator. The self-propelling lawnmower moves across an area surrounded by the boundary wire. By encoding a data frame with a recognition code in an alternating current that is Direct Current, DC-balanced and that is randomly transmitted within a predetermined period of time, by means of the signal generator, to the boundary wire a system robust against interference is accomplished. The data frame burst is received by a sensor and decoded by a control unit in the lawnmower. By comparing the received recognition code with a stored recognition code, the control unit determines that the lawnmower is on the inside of the boundary wire if the received recognition code matches the stored recognition code, and on the outside if the received recognition code matches the inverse of the stored recognition code.

TECHNICAL FIELD

The present invention relates generally to a system and method forcontrolling a self-propelling lawnmower, and more specifically forkeeping the self-propelling lawnmower inside an area encircled by aboundary wire.

BACKGROUND ART

In prior art, self-propelled lawnmowers are generally known. Forexample, EP 1 025 472 discloses a battery-operated lawnmower having acontrol unit for determining the travel direction and speed of thelawnmower. The surface to be mowed is defined by a border delimitationwire. Two signals with alternating voltage are applied simultaneously bya signal generator to the border delimitation wire. The first signaloscillates at a first frequency and the second signal oscillates with asecond frequency. The second signal oscillates at twice the frequency ofthe first signal. The two signals create alternating electromagneticfields, which are detected by receiving coils in the lawnmower. Thereceived signals are evaluated in order to decide if the lawnmower islocated within or outside the border delimitation wire. This is done bysetting a reference point when the first signal crosses the zero line.Then the system checks where a subsequent maximum of the second signalis located. If the subsequent maximum of the second signal is on theplus side the lawnmower is determined to be within the borderdelimitation wire. If, however the subsequent maximum of the secondsignal is on the minus side the lawnmower is determined to be outsidethe border delimitation wire. Based on this determination the traveldirection of the lawnmower is controlled.

Thus, according to EP 1 025 472 the determination if the lawnmower isinside or outside the border delimitation wire is done using fixedphasing. This puts high requirements on the electronics in the controlunit, which then will be unnecessary complex and expensive. Thissolution is also very sensitive when it comes to interference.

US2016/0014955 discloses a method for operating a self-propelledlawnmower, which is moved within a surface that is surrounded by aborder delimitation wire. Electrical signals are transmitted in theborder delimitation wire and create an electromagnetic field that issensed and evaluated by the lawnmower in order to determine if thelawnmower is inside or outside the surface encircled by the borderdelimitation wire. In order to improve the electromagnetic resistanceagainst interference the electrical signals that are transmitted in theborder delimitation wire are transmitted with a predetermined pattern.This predetermined pattern, as received by the lawnmower, is comparedwith a predetermined reference pattern by evaluating the received signalby means of correlation (convolution method). The result of thecomparison is used to determine if the lawnmower is inside or outsideborder delimitation wire and to control the lawnmower accordingly.

Even if this method has improved the resistance against electromagneticinterference fields, the use of a convolution makes the method morecomplex. Furthermore, the electrical signals transmitted to the borderdelimitation wire are transmitted in form of bursts that require thatthe reception of the signals at the lawnmower need to be synchronized.Thus, there is need for a method and system for controlling aself-propelled lawnmower that is even more robust in withstandinginterference and that does not require synchronization for receivingsignals at the lawnmower.

SUMMARY OF INVENTION

An object of the present invention is to provide a method forcontrolling a self-propelling lawnmower and especially a method that isrobust and resistant against interference during the determinationwhether the lawnmower is inside or outside a boundary wire.

According to one aspect of the present invention this object is achievedby a method performed by a system comprising the self-propellinglawnmower provided with a control unit and at least one sensor, aboundary wire and a signal generator and wherein the self-propellinglawnmower is configured to move across an area surrounded by theboundary wire. The method comprises encoding, by means of the signalgenerator, a data frame with a recognition code in an alternatingcurrent that is Direct Current, DC-balanced. The recognition codecomprises a system code and a loop number code. Thereafter, the dataframe is randomly transmitted within a predetermined period of time, bymeans of the signal generator, in form of a burst to the boundary wire.The randomly transmitted data frame burst is received, in theself-propelling lawnmower, by means of the at least one sensor anddecoded, in the control unit, to retrieve the recognition code, i.e. thesystem code and the loop number code. Then it is determined, in thecontrol unit, that the loop number code relates to the boundary wire anda comparison is made in the control unit between the decoded system codeand a predetermined system code stored in a memory of the control unit.If the decoded system code matches the predetermined system code it isdetermined that the lawnmower is on the inside of the boundary wire andif the decoded system code matches the inverse of the predeterminedsystem code it is determined that the lawnmower is on the outside of theboundary wire.

In an exemplary embodiment, the number of contiguous bits having thesame value in the encoded data frame is restricted to a maximum of threeor two contiguous bits.

In another exemplary embodiment, the loop number code of the data frameis provided as a header.

In yet another exemplary embodiment, the predetermined period of time isset to be within an interval of 3 to 20 milliseconds. The data frame ispreferably between 0.6 to 1 millisecond.

In another exemplary embodiment, the randomness in the step of randomlytransmitting the data frame in form of a burst is generated by acryptographic True Random Number Generator in the signal generator.

Another object of the present invention is to provide a system forcontrolling a self-propelling lawnmower and especially a system that isrobust and resistant against interference when the system determineswhether the lawnmower is inside or outside a boundary wire.

According to another aspect the present invention this object isachieved by a system for controlling a self-propelling lawnmower to moveacross an area surrounded by a boundary wire. The system comprises theself-propelling lawnmower, the boundary wire and a signal generator, thelawnmower further comprises a control unit and at least one sensor,wherein the control unit comprises a processor and a memory and whereinthe signal generator comprises a processor and a memory, the memoriescomprise instructions which when executed by the processers cause thesystem to:

-   -   encode, in the signal generator, a data frame with a recognition        code in an alternating current that is Direct Current,        DC-balanced, the recognition code comprising a system code and a        loop number code,    -   randomly transmit, within a predetermined period of time, the        data frame in form of a burst from the signal generator to the        boundary wire,    -   receive, in the self-propelling lawnmower, the randomly        transmitted data frame burst, by means of the at least one        sensor,    -   decode, in the control unit, the received data frame to receive        the recognition code, i.e. the system code and the loop number        code,    -   determine, in the control unit, that the loop number code        relates to the boundary wire,    -   compare, in the control unit, the decoded system code with a        predetermined system code stored in the memory of the control        unit, and    -   determine that the lawnmower is on the inside of the boundary        wire if the decoded system code matches the predetermined system        code, or    -   determine that the lawnmower is on the outside of the boundary        wire if the decoded system code matches the inverse of the        predetermined system code.

In an exemplary embodiment, the system is further caused to restrict thenumber of contiguous bits having the same value in the encoded dataframe to a maximum of three or two contiguous bits.

In yet another exemplary embodiment the system is further caused toprovide the loop number code of the data frame as a header.

In another exemplary embodiment, the system is further caused to set thepredetermined period of time within an interval of 3 to 20 milliseconds.The data frame may be set between 0.6 to 1 millisecond.

In a further exemplary embodiment the system is caused to generate therandomness, when randomly transmitting the data frame in form of aburst, by means of a cryptographic True Random Number Generator in thesignal generator.

According to one aspect there is achieved a computer program comprisingcomputer program code, wherein the computer program code being adapted,if executed by the processors of the signal generator and the controlunit to implement the method according to any one of the exemplaryembodiments.

By providing a method and a system for controlling a self-propellinglawnmower, that uses a DC-balanced alternating current encoded with adata frame comprising a recognition code and is randomly transmitted inform of a burst, it is possible to accomplish a robust and interferenceinsensible system. By restricting the number of contiguous bits havingthe same value in the encoded data frame to a maximum of two or threecontiguous bits the robustness can be further increased. The use of acryptographic True Random Number Generator in the signal generator mayfurther increase the robustness, especially against periodicalinterference such as competing systems for controlling self-propellinglawnmowers from neighboring properties.

BRIEF DESCRIPTION OF DRAWINGS

The invention is now described, by way of example, with reference to theaccompanying drawings, in which:

FIG. 1 a schematic view of a system for controlling a lawnmower.

FIG. 2 is a schematic view of a lawnmower.

FIG. 3 is a schematic block diagram of a control unit in the lawnmower.

FIG. 4 is a schematic block diagram of a signal generator.

FIG. 5 shows exemplary bursts that are generated by the signal generatorand received by a sensor in the lawnmower.

FIG. 6 to FIG. 9 show exemplary data frames.

FIG. 10 is a flow chart of the method for controlling the lawnmower.

DESCRIPTION OF EMBODIMENTS

In the following, a detailed description of exemplary embodimentscontrolling a lawnmower according to the present invention for will bepresented.

FIG. 1 shows a system for controlling a self-propelling lawnmower 2 tomove across an area A surrounded by a boundary wire 4. As is obvious thelawnmower is depicted somewhat enlarged for the sake of clarity. Theboundary wire 4 may be configured in any way, such that it delimits thearea A within which the self-propelling lawnmower 2 is allowed to move.The boundary wire 4 is preferably provided under the ground in the lawn,such that is not visible, but may also be provide on or above theground. The boundary wire 4 could be an ordinary copper wire ofsingle-core type. There are of course also other options, which iswell-known by a person skilled in the art, such as multi stranded wiretypes. The system also comprises a signal generator 6 which feeds theboundary wire 4 with an Alternating Current, AC, signal to be closerdescribed below.

Turning now to FIG. 2, the lawnmower 2 will be closer described. Thelawnmower 2 comprises a control unit 8, wheels 10, at least one sensor12, 14 and/or 16 and a battery 18. The control unit 8, which will becloser described in conjunction with FIG. 3, comprises among otherthings a processor 80 for controlling the movement of the lawnmower 2.When the lawnmower 2 is in operation the sensors 12, 14 and 16 sense themagnetic field that is generated in the boundary wire 4. The sensedmagnetic field (signal) is decoded in the control unit 8 in order toretrieve a recognition code. The recognition code will be closerdescribed in conjunction with FIG. 5 to FIG. 9.

The recognition code comprises a loop number code that relates to theloop in a system having several loops that sent the out the recognitioncode. For example, the boundary wire 4 may have loop number code 0, acharging station loop may have the loop number code 1 and differentguide wire loops may have loop number codes 2 and 3. Thus, loop numbercode is used to distinguish different loops from each other which isnecessary if the system comprises more loops than the boundary wire 4loop. Thus, before the lawnmower 2 is controlled by the control unit 8,the control unit 8 needs to determine which loop number code that hasbeen decoded in order to determine the proper control action.Preferably, the recognition code comprises four different loop numbercodes.

The recognition code also comprises a system code which is used todetermine which system that sent out the recognition code. Thus, thedecoded system code is compared with a predetermined system code storedin a memory 82, see FIG. 3, of the control unit 8. Based on thiscomparison it is determined that the lawnmower 2 is part of the systemthat sent out the recognition code if the decoded system code matchesthe predetermined system code.

The system code is further used to determine if the lawnmower 2 isinside or outside the boundary wire 4. Thus, as mentioned above thedecoded system code is compared with the predetermined system codestored in the memory 82 of the control unit 8. Based on this comparisonit is also determined that the lawnmower 2 is on the inside of theboundary wire 4 if the decoded system code matches the predeterminedsystem code and that the lawnmower 2 is on the outside of the boundarywire 4 if the decoded system code matches the inverse of thepredetermined system code. This determination is made if the loop numbercode relates to the boundary wire 4, for example is equal with 0. If nomatches are found the decoded signal is ignored and the system waits forthe next randomly generated burst to decode.

With reference to FIG. 3, the control unit 8 of the lawnmower 2 will becloser described. The control unit 8 comprises, as mentioned above theprocessor 80 and the memory 82. The memory 82 may comprise a computerprogram 84 comprising computer program code, i.e. instructions. Thecomputer program code is adapted to implement the method steps performedby lawnmower 2 when the code is executed on the processor 80. Thecontrol unit 8 further comprises an interface 86 for communication withthe sensors 12, 14 and 16, and a motor that operates the lawnmower 2.

The processor 80 may comprise a single Central Processing Unit (CPU), orcould comprise two or more processing units. For example, the processor80 may include general purpose microprocessors, instruction setprocessors and/or related chips sets and/or special purposemicroprocessors such as Application Specific Integrated Circuits(ASICs), Field Programmable Gate Arrays (FPGAs) or Complex ProgrammableLogic Devices (CPLDs). The processor 80 may also comprise a storage forcaching purposes.

FIG. 4 depicts the signal generator 6, which also comprises a processor60 and a memory 62. The memory 62 may comprise a computer program 64comprising computer program code, i.e. instructions. The computerprogram code is adapted to implement the method steps performed by thesignal generator 6 when the code is executed on the processor 60. Thesignal generator 6 further comprises an interface 66 for transmittingthe generated AC signal to the boundary wire 4.

The AC signal generated by the signal generator 6 is amplified by abalanced transimpedance amplifier in a first step and is then furtheramplified with an operational amplifier. The gain of both theseamplifiers is selected with two control signals from the processor 60and each gain control changes the gain by a factor of 10. The processor60 changes the gain when the signal is becoming too low or too high.This arrangement gives the system a high dynamic range of about 60 dB.

The signal generator 6 randomly transmits the generated AC signal asframes of data. The randomness is generated by a cryptographic trueRandom Number Generator, RNG, in the processor 60 to assure that thetiming is completely nondeterministic. In an exemplary embodiment, thedata frames may be between 0.6 to 1.0 milliseconds long, preferably 0.8milliseconds long. The frame-to-frame spacing may be set between 3 and20 milliseconds. The minimum spacing is selected such that it enables upto four boundary loops in one and the same installation. The maximumspacing may be selected such that a worst-case scenario reaction time is40 milliseconds if every other pulse is lost due to interference. Theuse of the cryptographic true RNG in the signal generator isadvantageous since it further increases the robustness, especiallyagainst periodical interference such as competing systems forcontrolling self-propelling lawnmowers from neighboring properties.

As for processor 80 also the processor 60 may comprise a single CentralProcessing Unit (CPU), or could comprise two or more processing units.For example, the processor 60 may include general purposemicroprocessors, instruction set processors and/or related chips setsand/or special purpose microprocessors such as Application SpecificIntegrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) orComplex Programmable Logic Devices (CPLDs). The processor 60 may alsocomprise a storage for caching purposes.

Turning now to FIG. 5 the AC signal that is generated by the signalgenerator 6 will now be closer described. In the AC signal, there isencoded a data frame 30 comprising a recognition code. In one exemplaryembodiment, the data frame is binary, The data frame “carries” a symbol,which symbol comprises a pattern of ones and zeros in case of a binarydata frame. The data frame may comprise 8 to 20 bits, i.e. the symbollength. Thus, one selects a number of bits to define the symbol length.If for instance 14 bits are chosen as a symbol length the number ofsymbols that are possible to use is 2¹⁴=16384. However, having thisnumber of possible symbols is a problem when it comes to decoding ofsymbols in the control unit 8 of the lawnmower 2. Due to interference,it may be difficult distinguish between all the different symbols andthus it may be difficult to decide if the lawnmower 2 is inside oroutside the boundary wire 4. In order to increase the robustness andresistance against interference several rules are applied to this set ofsymbols to narrow it down.

First of all, each allowed symbol should have an equal number of onesand zeroes. This will increase the reliability of the reception at thesensors 12, 14 and 16 and relaxes bandwidth requirements of thereceiving electronics of the lawnmower 2. Having an equal number of onesand zeroes is called a “DC free” encoding or a DC-balanced encoding.

In an exemplary embodiment, all symbols that are equal to the bitwiseinverse of another symbol are removed. This is necessary because asymbol will be received as the inverse when the mower is outside theboundary. Furthermore, in another exemplary embodiment the number ofcontiguous bits of the same value is restricted to a certain low value,for example two or three bits. This also increases the reliability ofthe reception and relaxes bandwidth requirements of the receivingelectronics.

Returning now to FIG. 5 it is evident that the boundary signal or dataframe is repeated randomly within the predetermined period of time T. Itis also evident that the signal is DC-balanced, i.e. the data frame 30comprises an equal number of ones and zeros. It should be understoodthat the size of the data frame 30 in FIG. 5 is exaggerated in order toclearly show the boundary signal. As mentioned above the data framelength is preferably about 0.6 to 1.0 milliseconds. As is further shownin FIG. 5 there is also disclosed a charging loop signal. As alsomentioned above the predetermined period of time T, is such that thereis room for at least four boundary loops in one and the sameinstallation.

Turning now to FIG. 6 to FIG. 9, different examples of binary dataframes are shown. FIG. 6 is an example of a data frame with a 12-bitsymbol having a maximum of two contiguous bits. This reduces the validnumber of symbols to receive and decode in the lawnmower to 104.

FIG. 7 shows a 12-bit symbol having a maximum of three contiguous bits.This will reduce the symbol set to 308 valid symbols.

FIG. 8 shows a 14-bit symbol with a maximum of two contiguous bits,reducing the symbol set to 259 valid symbols.

Finally, FIG. 9 shows a 16-bit symbol with a maximum of two contiguousbits, giving 648 valid symbols.

As mentioned above each frame contains one symbol. In the exemplaryembodiment of FIG. 8, i.e. the 14-bit symbol with 2 maximum contiguousbits, 8 bits of data may be decoded by the control unit 8 of thelawnmower 2. The data is divided into a header comprising two bits and abody of six bits. The header may be interpreted as the loop number code.In other embodiments, the loop number code may be extracted in otherways from the decoded data. The boundary wire 4 would typically be setto loop number 0, and a first charging station loop would be loop number1. The six last bits are enough to enable 64 unique system codes. Thelawnmower 2 and the signal generator 6 (charging station) are set andagreed on a system code when the system is first powered up or duringproduction testing. Three additional symbols are available for signalingand future enhancements.

With reference to FIG. 10 the method performed by the above describedsystem for controlling the self-propelling lawnmower 2 will bedescribed. The method starts in step S100 in which the signal generator6 encodes the data frame with a recognition code in an alternatingcurrent that is DC-balanced. As mentioned above the recognition codecomprises the system code and the loop number code. The signal generator6 then randomly transmits, in step S102, a data frame burst 30 to theboundary wire 4 within the predetermined period of time T. This burst 30is then received, in step S104, in the self-propelling lawnmower 2, bymeans of at least one sensor 12, 14, 16. The sensor or sensors 12, 14and 16 forward the received data frame burst 30 to the control unit 8which decodes, in step S106, the received data frame to retrieve therecognition code, i.e. the system code and the loop number code. It is,determined by the control unit 8, in step S108, that the loop numbercode relates to the boundary wire 4. Thereafter, in step S110, thecontrol unit 8, compares the decoded system code with a predeterminedsystem code that is stored in the memory 82 of the control unit 8. Ifthe decoded system code matches the predetermined system code thecontrol unit 8 determines, in step S112, that the lawnmower 2 is on theinside of the boundary wire 4 or that the lawnmower is on the outside ofthe boundary wire 4, in step S114, if the decoded system code matchesthe inverse of the predetermined system code.

Thus, in the control unit 8, a zero-crossing detector, which may berealized in software, collects possible symbols all the time. Potentialmatches are checked against a symbol table as soon as enough transitionsare collected. Error checking is made possible by the fact that only afew of all possible symbols are assigned given the differentrequirements of the data frame, as mentioned above. This describedencoding scheme gives a strong error detection and is therefore veryrobust against interference.

Thus, the detection of if the lawnmower 2 is inside or outside theboundary wire is built into the encoding. The frame that are received bythe control unit 8 of the lawnmower 2 will match a symbol if the moweris inside the boundary. If the mower is outside then a match will befound against the inverse of the received frame. This enables a robustinside/outside detection since the determination depends on receiving anentire correct frame and not on timing of up/down flanks which couldeasily be corrupted by interference.

Although, the present invention has been described above with referenceto specific embodiments, it is not intended to be limited to thespecific form set forth herein. Rather, the invention is limited only bythe accompanying claims.

In the claims, the term “comprises/comprising” does not exclude thepresence of other elements or steps. Furthermore, although individuallylisted, a plurality of means or elements may be implemented by e.g. asingle unit or processor. Additionally, although individual features maybe included in different claims, these may possibly advantageously becombined, and the inclusion in different claims does not imply that acombination of features is not feasible and/or advantageous. Inaddition, singular references do not exclude a plurality. The terms “a”,“an”, “first”, “second” etc do not preclude a plurality. Reference signsin the claims are provided merely as a clarifying example and shall notbe construed as limiting the scope of the claims in any way.

1-15. (canceled)
 16. A method performed by a system for controlling aself-propelling lawnmower, the system comprising the self-propellinglawnmower having a control unit and at least one sensor, a boundary wireand a signal generator and wherein the self-propelling lawnmower isconfigured to move across an area surrounded by the boundary wire, themethod comprising: encoding, by means of the signal generator, a dataframe with a recognition code in an alternating current that is DirectCurrent, DC-balanced, the recognition code comprising a system code anda loop number code, randomly transmitting within a predetermined periodof time, by means of the signal generator, the data frame in form of aburst to the boundary wire, receiving, in the self-propelling lawnmower,the randomly transmitted data frame burst, by means of the at least onesensor, decoding, in the control unit, the received data frame toretrieve the recognition code, i.e. the system code and the loop numbercode, determining, in the control unit, that the loop number coderelates to the boundary wire, comparing, in the control unit, thedecoded system code with a predetermined system code stored in a memoryof the control unit, and determining that the lawnmower is on the insideof the boundary wire if the decoded system code matches thepredetermined system code, or determining that the lawnmower is on theoutside of the boundary wire if the decoded system code matches theinverse of the predetermined system code.
 17. The method according toclaim 16, wherein the number of contiguous bits having the same value inthe encoded data frame is restricted to a maximum of three contiguousbits.
 18. The method according to claim 16, wherein the number ofcontiguous bits having the same value in the encoded data frame isrestricted to a maximum of two contiguous bits.
 19. The method accordingto claim 16, wherein the loop number code of the data frame is providedas a header.
 20. The method according to claim 16, wherein thepredetermined period of time is set within an interval of 3 to 20milliseconds.
 21. The method according to claim 16, wherein the dataframe is between 0.6 to 1 millisecond.
 22. The method according to claim16, wherein the randomness in the step of randomly transmitting the dataframe in form of a burst is generated by a cryptographic True RandomNumber Generator in the signal generator.
 23. A system for controlling aself-propelling lawnmower to move across an area surrounded by aboundary wire, comprising the self-propelling lawnmower, the boundarywire and a signal generator, the lawnmower further comprising a controlunit and at least one sensor, wherein the control unit comprises aprocessor and a memory and wherein the signal generator comprises aprocessor and a memory, the memories comprising instructions which whenexecuted by the processers cause the system to: encode, in the signalgenerator, a data frame with a recognition code in an alternatingcurrent that is Direct Current, DC-balanced, the recognition codecomprising a system code and a loop number code, randomly transmit,within a predetermined period of time, the data frame in form of a burstfrom the signal generator to the boundary wire, receive, in theself-propelling lawnmower, the randomly transmitted data frame burst, bymeans of the at least one sensor, decode, in the control unit, thereceived data frame to retrieve the recognition code, i.e. the systemcode and the loop number code, determine, in the control unit, that theloop number code relates to the boundary wire, compare, in the controlunit, the decoded system code with a predetermined system code stored inthe memory of the control unit, and determine that the lawnmower is onthe inside of the boundary wire if the decoded system code matches thepredetermined system code, or determine that the lawnmower is on theoutside of the boundary wire if the decoded system code matches theinverse of the predetermined system code.
 24. The system according toclaim 23, further caused to restrict the number of contiguous bitshaving the same value in the encoded data frame to a maximum of threecontiguous bits.
 25. The system according to claim 23, further caused torestrict the number of contiguous bits having the same value in theencoded data frame to a maximum of two contiguous bits.
 26. The systemaccording to claim 23, further caused to provide the loop number code ofthe data frame as a header.
 27. The system according to claim 23,further caused to set the predetermined period of time within aninterval of 3 to 20 milliseconds.
 28. The system according to claim 23,further caused to set the data frame between 0.6 to 1 millisecond. 29.The system according to claim 23, further caused to generate therandomness, when randomly transmitting the data frame in form of aburst, by means of a cryptographic True Random Number Generator in thesignal generator.
 30. A computer program comprising computer programcode, the computer program code being adapted, if executed by theprocessers of the signal generator and the control unit, to implementthe method according to claim 16.